LINQ ব্যবহার করে ডেটা ফিল্টার এবং রিট্রিভ করা

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) ডেটাবেস অপারেশন (Database Operations) |
203
203

LINQ (Language Integrated Query) হল একটি শক্তিশালী টুল যা ডেটা ফিল্টারিং এবং রিট্রিভ করার জন্য ব্যবহৃত হয়। এটি ডেটাবেস, কালেকশন বা XML থেকে ডেটা রিট্রিভ এবং ম্যানিপুলেট করার একটি সাধারণ এবং একত্রিত পদ্ধতি প্রদান করে। LINQ Entity Framework-এর সাথে ব্যবহার করে ASP.Net MVC-তে ডেটা ফিল্টার এবং রিট্রিভ করা খুবই সহজ।


LINQ ব্যবহার করে ডেটা রিট্রিভ করা

LINQ এর মাধ্যমে Entity Framework ডেটাবেস থেকে ডেটা রিট্রিভ করার জন্য IQueryable অথবা IEnumerable ব্যবহার করা হয়।

উদাহরণ: সম্পূর্ণ ডেটা রিট্রিভ করা

একটি Students টেবিল থেকে সমস্ত ডেটা রিট্রিভ করতে LINQ ব্যবহার:

var students = _context.Students.ToList();

এটি Students টেবিলের সমস্ত রেকর্ড students ভেরিয়েবলে লোড করবে।


LINQ ব্যবহার করে ডেটা ফিল্টার করা

শর্তের ভিত্তিতে ডেটা ফিল্টারিং

ধরা যাক, আমরা এমন সব শিক্ষার্থীর তালিকা রিট্রিভ করতে চাই যাদের বয়স ১৮-এর বেশি:

var adultStudents = _context.Students.Where(s => s.Age > 18).ToList();

এখানে Where মেথড ব্যবহার করে বয়সের উপর ভিত্তি করে ডেটা ফিল্টার করা হয়েছে।

নির্দিষ্ট ফিল্ড অনুযায়ী ডেটা রিট্রিভ

শুধুমাত্র শিক্ষার্থীদের নাম এবং ক্লাস রিট্রিভ করতে:

var studentNamesAndClasses = _context.Students
    .Select(s => new { s.Name, s.Class })
    .ToList();

এটি Students টেবিল থেকে শুধুমাত্র Name এবং Class ফিল্ড রিট্রিভ করবে।


LINQ ব্যবহার করে ডেটা সাজানো (Sorting)

ক্রমবর্ধমান (Ascending Order) অনুযায়ী সাজানো

নাম অনুসারে শিক্ষার্থীদের তালিকা ক্রমবর্ধমানভাবে সাজাতে:

var sortedStudents = _context.Students.OrderBy(s => s.Name).ToList();

ক্রমহ্রাসমান (Descending Order) অনুযায়ী সাজানো

বয়স অনুসারে শিক্ষার্থীদের তালিকা ক্রমহ্রাসমানভাবে সাজাতে:

var sortedStudentsByAge = _context.Students.OrderByDescending(s => s.Age).ToList();

LINQ ব্যবহার করে গ্রুপিং (Grouping)

গ্রুপিং ব্যবহার করে ডেটা সংগঠিত করা যায়। উদাহরণস্বরূপ, শিক্ষার্থীদের ক্লাস অনুযায়ী গ্রুপ করতে:

var groupedStudents = _context.Students
    .GroupBy(s => s.Class)
    .Select(group => new 
    {
        ClassName = group.Key,
        Students = group.ToList()
    })
    .ToList();

এটি Class অনুযায়ী শিক্ষার্থীদের গ্রুপ করবে এবং প্রতিটি গ্রুপের শিক্ষার্থীদের তালিকা প্রদান করবে।


LINQ ব্যবহার করে যোগফল এবং গড় গণনা

মোট শিক্ষার্থীর সংখ্যা গণনা

var totalStudents = _context.Students.Count();

একটি নির্দিষ্ট ক্লাসে শিক্ষার্থীর সংখ্যা গণনা

var totalClassTenStudents = _context.Students.Count(s => s.Class == "10");

শিক্ষার্থীদের গড় বয়স গণনা

var averageAge = _context.Students.Average(s => s.Age);

সর্বোচ্চ এবং সর্বনিম্ন বয়স নির্ধারণ

var maxAge = _context.Students.Max(s => s.Age);
var minAge = _context.Students.Min(s => s.Age);

LINQ ব্যবহার করে পেজিনেশন (Pagination)

ধরা যাক, প্রতি পেজে ১০টি শিক্ষার্থীর তালিকা দেখাতে হবে। Skip এবং Take মেথড ব্যবহার করে এটি করা সম্ভব:

int pageNumber = 2;
int pageSize = 10;

var paginatedStudents = _context.Students
    .Skip((pageNumber - 1) * pageSize)
    .Take(pageSize)
    .ToList();

এটি ২য় পেজের জন্য ১০টি শিক্ষার্থীর তালিকা রিট্রিভ করবে।


LINQ ব্যবহার করে ডেটা ফিল্টার এবং রিট্রিভের সুবিধা

  • সহজ পদ্ধতি: LINQ একটি সাধারণ এবং শক্তিশালী কোড স্ট্রাকচার প্রদান করে।
  • ডায়নামিক কোয়েরি: ডেটা রিট্রিভ করার জন্য সহজেই ডায়নামিক কোয়েরি লেখা যায়।
  • ডেটা প্রক্রিয়াকরণ: ফিল্টারিং, গ্রুপিং, সাজানো এবং গণনা এক লাইন কোডে করা যায়।
  • রিডেবিলিটি: কোড পড়তে এবং বুঝতে সহজ।

সারমর্ম

LINQ ব্যবহার করে ডেটাবেস থেকে ডেটা ফিল্টার এবং রিট্রিভ করা ASP.Net MVC অ্যাপ্লিকেশনে একটি অত্যন্ত গুরুত্বপূর্ণ এবং কার্যকর পদ্ধতি। LINQ-এর সরল এবং শক্তিশালী কোয়েরি সিস্টেম ডেভেলপারদের কাজকে দ্রুত এবং দক্ষ করে তোলে। এটি ডেটাবেস অপারেশন সহজ করার পাশাপাশি কোডের পাঠযোগ্যতা বৃদ্ধি করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion